#ifdef GL_ES
precision mediump float;
#endif

uniform sampler2D u_Sampler;
uniform float u_Width;
uniform float u_Height;
uniform vec4 u_Color;

varying vec2 v_TexCoord;

void main() {
    vec4 color = texture2D(u_Sampler, v_TexCoord);
    if (color.r == 0.0 && color.g == 0.0 && color.b == 0.0) {
        gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
    }
    else if ((color.r - u_Color.r) < 0.001960 && (color.g - u_Color.g) < 0.001960 && (color.b - u_Color.b) < 0.001960) {
        if ((abs((color.r - u_Color.r) / u_Color.r)) < 0.3) {
            gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
        }
        else {
            gl_FragColor = vec4(color.rgb, color.a * 4.0);
        }
    }
    else {
        gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
    }
}
